package com.suning.sawp.intf.mainpushnew;

import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Sheet;
import org.springframework.web.multipart.MultipartFile;

import com.suning.sawp.dto.common.QueryResult;
import com.suning.sawp.dto.common.ReturnMsg;
import com.suning.sawp.dto.precharge.CommonRtn;
import com.suning.sawp.po.mainpushnew.HqTask;
import com.suning.sawp.vo.mainpushnew.HqModelAllocateFormVo;
import com.suning.sawp.vo.mainpushnew.HqModelAllocateVo;
import com.suning.sawp.vo.mainpushnew.TaskModelVo;

/**
 * 
 * 总部主推任务维护接口<br>
 *
 * @author 14060886 祝翔龙
 */
public interface MainPushTaskHqHandleService {

    /**
     * 
     * 解析导入的excel文件，并且数据入库，返回解析结果
     *
     * @param file 导入的文件
     * @param month 选择的任务月份
     * @return
     */
    public ReturnMsg<List<String>> importFirstExcel(MultipartFile file, String month);
    
	/**
	 * 分页查询总部任务
	 *
	 * @param paramsMap
	 * @return
	 */
	public ReturnMsg<QueryResult<HqTask>> queryPageHqTask(Map<String, Object> paramsMap);


    /**
     * 
     * 解析导入的excel文件，并且数据入库，返回解析结果
     *
     * @param file 导入的文件
     * @param month 选择的任务月份
     * @return
     */
    public ReturnMsg<List<String>> importSecondExcel(MultipartFile file, String month);

    /**
     * 
     * 功能描述: 查询主推任务以及款数信息<br>
     *
     * @param hqTaskId
     * @param pageParams
     * @return
     */
    ReturnMsg<QueryResult<TaskModelVo>> queryTaskModelDetail(Long hqTaskId, Map<String, Integer> pageParams);

    /**
     * 
     * 功能描述: 修改主推占比<br>
     *
     * @param hqTaskId
     * @param rate
     * @return
     */
    ReturnMsg<CommonRtn> modityTaskRate(Long hqTaskId, String rate);

    /**
     * 
     * 功能描述: 查询各大区分配详情<br>
     *
     * @param hqTaskId
     * @param modelId
     * @return
     */
    ReturnMsg<List<HqModelAllocateVo>> queryAreaAllocateDetail(Long hqTaskId, Long modelId);

    /**
     * 
     * 功能描述: 分配款数台数<br>
     *
     * @param formVo 大区分配情况
     */
    ReturnMsg<CommonRtn> allocateModel(HqModelAllocateFormVo formVo);

    /**
     * 
     * 功能描述: 删除款数<br>
     *
     * @param hqTaskId
     * @param modelId
     */
    ReturnMsg<CommonRtn> removeModel(Long hqTaskId, Long modelId);

    /**
     * 
     * 功能描述: 查询主推任务信息<br>
     *
     * @param hqTaskId
     * @return
     */
    ReturnMsg<HqTask> queryTaskInfo(Long hqTaskId);

    /**
     * 
     * 功能描述: 新增款数<br>
     *
     * @param sheet
     * @param hqTaskId
     * @return
     */
    ReturnMsg<CommonRtn> addModel(Sheet sheet, Long hqTaskId);

	/**
	 * 
	 * 删除总部主推任务
	 * 
	 * @param id
	 * @return
	 */
	public ReturnMsg<HqTask> delHqTask(Long id);

}
